Make gtk_places_sidebar_set_current_uri() handle NULL URIs to unselect all
authorFederico Mena Quintero <federico@gnome.org>
Fri, 30 Sep 2011 13:10:57 +0000 (08:10 -0500)
committerFederico Mena Quintero <federico@gnome.org>
Tue, 4 Sep 2012 01:42:31 +0000 (20:42 -0500)
Signed-off-by: Federico Mena Quintero <federico@gnome.org>
gtk/gtkplacessidebar.c

index d9db9c6cf9c5394e09e551fab3f7f5cb9e995567..8916d3a888f22e9f11d335229a89adcf7234bfd9 100644 (file)
@@ -3397,12 +3397,23 @@ gtk_places_sidebar_set_current_uri (GtkPlacesSidebar *sidebar, const char *uri)
        gboolean         valid;
        char             *iter_uri;
 
-        if (strcmp (sidebar->uri, uri) != 0) {
+       g_return_if_fail (GTK_IS_PLACES_SIDEBAR (sidebar));
+
+       selection = gtk_tree_view_get_selection (sidebar->tree_view);
+
+       if (uri == NULL) {
+               g_free (sidebar->uri);
+               sidebar->uri = NULL;
+
+               gtk_tree_selection_unselect_all (selection);
+               return;
+       }
+
+        if (sidebar->uri == NULL || strcmp (sidebar->uri, uri) != 0) {
                g_free (sidebar->uri);
                 sidebar->uri = g_strdup (uri);
 
                /* set selection if any place matches the uri */
-               selection = gtk_tree_view_get_selection (sidebar->tree_view);
                gtk_tree_selection_unselect_all (selection);
                valid = gtk_tree_model_get_iter_first (sidebar->filter_model, &iter);